/*!
 @header OrderConfirmViewController.h
 @author 王 文彬
 @version 1.0.0 2013/02/06 Creation
 Copyright (c) 2013年 mypocketbaby. All rights reserved.
 */

#import <UIKit/UIKit.h>
#import "ConsigneeFormViewController.h"

/*!
 @abstract OrderPickerViewController的协议，声明了用户选择一栏后所应该记录的信息的方法
 @discussion @required
 */
@protocol OrderPickerViewControllerDelegate <NSObject>

@optional

/*!
 @abstract 配送方式选择后，代理对象会调用的方法
 @discussion 用来记忆用户所选择的配送方式
 @param way 配送方式名称字符串
 @param indexPath 在tableview中被选中一行的indexpath
 */
- (void)deliveryPicked:(NSString *)way andIndexPath:(NSIndexPath *)indexPath;

/*!
 @abstract 地址信息选择后，代理对象会调用的方法
 @discussion 用来记忆用户所选择的地址信息
 @param address 被用户选择的地址的信息对象
 @param consIdSelected 被用户选择的地址的ID
 */
- (void)addressPicked:(NSDictionary *)address andId:(NSNumber *)consIdSelected;
@end

/*!
 @abstract OrderPickerViewController基于UITableViewController，用于配送方式和地址信息的选择。同时能添加地址。
 */
@interface OrderPickerViewController : UITableViewController
{
    NSMutableArray* _dataSource;                            //数据源
    BOOL _isDelivery;                                       //用于区分用户是选择配送方式还是地址信息，如果为true则表示为配送方式，否则为地址信息。
    NSIndexPath *_indexPathForDeliveryIsSelected;           //配送方式以前被选中的indexpath
    UIImageView* _blankPage;                                //当数据源为空时，view的友好显示。
//    BOOL _isDefaultAddExist;                                
}

/*!
 @abstract OrderPickerViewController的代理对象
 此代理必须适应OrderPickerViewControllerDelegate
 */
@property (nonatomic, strong) id<OrderPickerViewControllerDelegate> delegate;

/*!
 @abstract 已被选中的配送方式字符串，当选中一次后再一次进入到此VC记录时，传递上一次用户选中的配送方式。
 */
@property (strong, nonatomic) NSString *deliveryIsSelected;

/*!
 @abstract 已被选中的地址ID，用于记忆每一次用户所选择的地址。用于提示用户地址是否被选择时的判断。
 */
@property (strong, nonatomic) NSNumber *consIdSelected;

/*!
 @abstract 设置用户选择过哪一种配送方式的方法
 @param indexPath 被用户选择的配送方式的indexpath
 */
- (void)setWhichRowIsSelectedForDelivery:(NSIndexPath *)indexPath;

/*!
 @abstract 设置用户选择的是配送方式还是地址信息
 @param yesOrNo 为true则表示为配送方式，否则为地址信息。
 */
- (void)isDelivery:(BOOL)yesOrNo;
@end
